package com.wteam.dragon.system.apps.server.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wteam.dragon.system.apps.server.povo.bean.QiniuConfig;
import com.wteam.dragon.system.apps.server.povo.bean.QiniuContent;
import com.wteam.dragon.system.basebean.bean.ResultMessage;
import org.springframework.web.multipart.MultipartFile;

import java.util.Set;

/**
 * @Author 陈晓辉
 * @Date 2020/3/24
 */
public interface QiniuService {
    /**
     * 添加七牛云配置
     * @param qiniuConfig 七牛云配置对象
     * @return ResultMessage
     */
    ResultMessage addQiniuConfig(QiniuConfig qiniuConfig);

    /**
     * 删除七牛云配置
     * @param id 七牛云配置id
     * @return ResultMessage
     */
    ResultMessage delQiniuConfig(Long id);

    /**
     * 编辑七牛云配置
     * @param qiniuConfig 七牛云配置对象
     * @return ResultMessage
     */
    ResultMessage editQiniuConfig(QiniuConfig qiniuConfig);

    /**
     * 获得七牛云配置列表
     * @return ResultMessage
     */
    ResultMessage listQiniuConfig();

    /**
     * 上传文件
     * @param file 上传的文件对象
     * @param qiniuConfig 七牛云配置对象
     * @return ResultMessage
     */
    ResultMessage uploadFile(MultipartFile file, QiniuConfig qiniuConfig);

    /**
     * 下载文件
     * @param qiniuConfig 七牛云配置对象
     * @param qiniuContent 七牛云储存对象
     * @return ResultMessage
     */
    ResultMessage downloadFile(QiniuConfig qiniuConfig, QiniuContent qiniuContent);

    /**
     * 删除文件
     * @param qiniuConfig 七牛云配置对象
     * @param qiniuContentIds 七牛云储存对象id集合
     * @return ResultMessage
     */
    ResultMessage delFile(QiniuConfig qiniuConfig, Set<Long> qiniuContentIds);

    /**
     * 分页获得七牛云储存信息
     * @param page 分页对象
     * @return ResultMessage
     */
    ResultMessage pageQiniuContent(Page<QiniuContent> page);
}
